theType: DriverType; { nameInfoStr + version number }
compatibleProp: BOOLEAN; { true if matched using a compatible name }
pad: PACKED ARRAY [0..2] OF UInt8; { alignment }
END;
{ Driver Loader API }
{$IFC FOR_SYSTEM7_AND_SYSTEM8_DEPRECATED }
FUNCTION HigherDriverVersion(VAR driverVersion1: NumVersion; VAR driverVersion2: NumVersion): SInt16; C;
FUNCTION VerifyFragmentAsDriver(fragmentConnID: CFragConnectionID; VAR fragmentMain: DriverEntryPointPtr; VAR driverDesc: DriverDescriptionPtr): OSErr; C;
FUNCTION GetDriverMemoryFragment(memAddr: Ptr; length: LONGINT; fragName: Str63; VAR fragmentConnID: CFragConnectionID; VAR fragmentMain: DriverEntryPointPtr; VAR driverDesc: DriverDescriptionPtr): OSErr; C;
FUNCTION GetDriverDiskFragment(fragmentSpec: FSSpecPtr; VAR fragmentConnID: CFragConnectionID; VAR fragmentMain: DriverEntryPointPtr; VAR driverDesc: DriverDescriptionPtr): OSErr; C;
{$IFC FOR_SYSTEM7_ONLY }
FUNCTION InstallDriverFromFragment(fragmentConnID: CFragConnectionID; VAR device: RegEntryID; beginningUnit: UnitNumber; endingUnit: UnitNumber; VAR refNum: DriverRefNum): OSErr; C;
FUNCTION InstallDriverFromFile(fragmentSpec: FSSpecPtr; VAR device: RegEntryID; beginningUnit: UnitNumber; endingUnit: UnitNumber; VAR refNum: DriverRefNum): OSErr; C;
FUNCTION InstallDriverFromMemory(memory: Ptr; length: LONGINT; fragName: Str63; VAR device: RegEntryID; beginningUnit: UnitNumber; endingUnit: UnitNumber; VAR refNum: DriverRefNum): OSErr; C;
FUNCTION InstallDriverFromDisk(theDriverName: Ptr; VAR theDevice: RegEntryID; theBeginningUnit: UnitNumber; theEndingUnit: UnitNumber; VAR theRefNum: DriverRefNum): OSErr; C;
FUNCTION FindDriversForDevice(VAR device: RegEntryID; VAR fragmentSpec: FSSpec; VAR fileDriverDesc: DriverDescription; VAR memAddr: Ptr; VAR length: LONGINT; fragName: StringPtr; VAR memDriverDesc: DriverDescription): OSErr; C;
FUNCTION FindDriverCandidates(VAR deviceID: RegEntryID; VAR propBasedDriver: Ptr; VAR propBasedDriverSize: RegPropertyValueSize; deviceName: StringPtr; VAR propBasedDriverType: DriverType; VAR gotPropBasedDriver: BOOLEAN; fileBasedDrivers: FileBasedDriverRecordPtr; VAR nFileBasedDrivers: ItemCount): OSErr; C;
FUNCTION ScanDriverCandidates(VAR deviceID: RegEntryID; fileBasedDrivers: FileBasedDriverRecordPtr; nFileBasedDrivers: ItemCount; matchingDrivers: FileBasedDriverRecordPtr; VAR nMatchingDrivers: ItemCount): OSErr; C;
FUNCTION GetDriverForDevice(VAR device: RegEntryID; VAR fragmentConnID: CFragConnectionID; VAR fragmentMain: DriverEntryPointPtr; VAR driverDesc: DriverDescriptionPtr): OSErr; C;
FUNCTION InstallDriverForDevice(VAR device: RegEntryID; beginningUnit: UnitNumber; endingUnit: UnitNumber; VAR refNum: DriverRefNum): OSErr; C;
FUNCTION GetDriverInformation(refNum: DriverRefNum; VAR unitNum: UnitNumber; VAR flags: DriverFlags; VAR count: DriverOpenCount; name: StringPtr; VAR device: RegEntryID; VAR driverLoadLocation: CFragSystem7Locator; VAR fragmentConnID: CFragConnectionID; VAR fragmentMain: DriverEntryPointPtr; VAR driverDesc: DriverDescription): OSErr; C;
{$ELSEC}
FUNCTION InstallDriverFromFragment(fragmentConnID: CFragConnectionID; VAR device: RegEntryRef; beginningUnit: UnitNumber; endingUnit: UnitNumber; VAR refNum: DriverRefNum): OSErr; C;
FUNCTION InstallDriverFromFile(fragmentSpec: FSSpecPtr; VAR device: RegEntryRef; beginningUnit: UnitNumber; endingUnit: UnitNumber; VAR refNum: DriverRefNum): OSErr; C;
FUNCTION InstallDriverFromMemory(memory: Ptr; length: LONGINT; fragName: Str63; VAR device: RegEntryRef; beginningUnit: UnitNumber; endingUnit: UnitNumber; VAR refNum: DriverRefNum): OSErr; C;
FUNCTION InstallDriverFromDisk(theDriverName: Ptr; VAR theDevice: RegEntryRef; theBeginningUnit: UnitNumber; theEndingUnit: UnitNumber; VAR theRefNum: DriverRefNum): OSErr; C;
FUNCTION FindDriversForDevice(VAR device: RegEntryRef; VAR fragmentSpec: FSSpec; VAR fileDriverDesc: DriverDescription; VAR memAddr: Ptr; VAR length: LONGINT; fragName: StringPtr; VAR memDriverDesc: DriverDescription): OSErr; C;
FUNCTION FindDriverCandidates(VAR deviceID: RegEntryRef; VAR propBasedDriver: Ptr; VAR propBasedDriverSize: UInt32; deviceName: StringPtr; VAR propBasedDriverType: DriverType; VAR gotPropBasedDriver: BOOLEAN; fileBasedDrivers: FileBasedDriverRecordPtr; VAR nFileBasedDrivers: ItemCount): OSErr; C;
FUNCTION ScanDriverCandidates(VAR deviceID: RegEntryRef; fileBasedDrivers: FileBasedDriverRecordPtr; nFileBasedDrivers: ItemCount; matchingDrivers: FileBasedDriverRecordPtr; VAR nMatchingDrivers: ItemCount): OSErr; C;
FUNCTION GetDriverForDevice(VAR device: RegEntryRef; VAR fragmentConnID: CFragConnectionID; VAR fragmentMain: DriverEntryPointPtr; VAR driverDesc: DriverDescriptionPtr): OSErr; C;
FUNCTION InstallDriverForDevice(VAR device: RegEntryRef; beginningUnit: UnitNumber; endingUnit: UnitNumber; VAR refNum: DriverRefNum): OSErr; C;
{$ENDC}
FUNCTION SetDriverClosureMemory(fragmentConnID: CFragConnectionID; holdDriverMemory: BOOLEAN): OSErr; C;
FUNCTION ReplaceDriverWithFragment(theRefNum: DriverRefNum; fragmentConnID: CFragConnectionID): OSErr; C;
FUNCTION OpenInstalledDriver(refNum: DriverRefNum; ioPermission: SInt8): OSErr; C;
FUNCTION RenameDriver(refNum: DriverRefNum; newDriverName: StringPtr): OSErr; C;
FUNCTION RemoveDriver(refNum: DriverRefNum; immediate: BOOLEAN): OSErr; C;
FUNCTION LookupDrivers(beginningUnit: UnitNumber; endingUnit: UnitNumber; emptyUnits: BOOLEAN; VAR returnedRefNums: ItemCount; VAR refNums: DriverRefNum): OSErr; C;
FUNCTION HighestUnitNumber: UnitNumber; C;
FUNCTION DriverGestaltOn(refNum: DriverRefNum): OSErr; C;
FUNCTION DriverGestaltOff(refNum: DriverRefNum): OSErr; C;
FUNCTION DriverGestaltIsOn(flags: DriverFlags): BOOLEAN; C;
{$ENDC}
{$IFC NOT OLDROUTINELOCATIONS }
{$IFC FOR_SYSTEM7_AND_SYSTEM8_DEPRECATED }
FUNCTION PBOpenSync(paramBlock: ParmBlkPtr): OSErr;
{$IFC NOT GENERATINGCFM}
INLINE $205F, $A000, $3E80;
{$ENDC}
FUNCTION PBOpenAsync(paramBlock: ParmBlkPtr): OSErr;
{$IFC NOT GENERATINGCFM}
INLINE $205F, $A400, $3E80;
{$ENDC}
FUNCTION PBOpenImmed(paramBlock: ParmBlkPtr): OSErr;
{$IFC NOT GENERATINGCFM}
INLINE $205F, $A200, $3E80;
{$ENDC}
FUNCTION PBCloseSync(paramBlock: ParmBlkPtr): OSErr;
{$IFC NOT GENERATINGCFM}
INLINE $205F, $A001, $3E80;
{$ENDC}
FUNCTION PBCloseAsync(paramBlock: ParmBlkPtr): OSErr;
{$IFC NOT GENERATINGCFM}
INLINE $205F, $A401, $3E80;
{$ENDC}
FUNCTION PBCloseImmed(paramBlock: ParmBlkPtr): OSErr;
{$IFC NOT GENERATINGCFM}
INLINE $205F, $A201, $3E80;
{$ENDC}
FUNCTION PBReadSync(paramBlock: ParmBlkPtr): OSErr;
{$IFC NOT GENERATINGCFM}
INLINE $205F, $A002, $3E80;
{$ENDC}
FUNCTION PBReadAsync(paramBlock: ParmBlkPtr): OSErr;
{$IFC NOT GENERATINGCFM}
INLINE $205F, $A402, $3E80;
{$ENDC}
FUNCTION PBReadImmed(paramBlock: ParmBlkPtr): OSErr;
{$IFC NOT GENERATINGCFM}
INLINE $205F, $A202, $3E80;
{$ENDC}
FUNCTION PBWriteSync(paramBlock: ParmBlkPtr): OSErr;
{$IFC NOT GENERATINGCFM}
INLINE $205F, $A003, $3E80;
{$ENDC}
FUNCTION PBWriteAsync(paramBlock: ParmBlkPtr): OSErr;
{$IFC NOT GENERATINGCFM}
INLINE $205F, $A403, $3E80;
{$ENDC}
FUNCTION PBWriteImmed(paramBlock: ParmBlkPtr): OSErr;
FUNCTION DeviceManagerGetDeviceData(requestItemCount: ItemCount; VAR totalItemCount: ItemCount; VAR dataArray: DeviceManagerIOIteratorDataPtr): OSStatus; C;